home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gtk-2.0 / gtk / gtkbindings.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  4.3 KB  |  159 lines

  1. /* GTK - The GIMP Toolkit
  2.  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  3.  *
  4.  * GtkBindingSet: Keybinding manager for GtkObjects.
  5.  * Copyright (C) 1998 Tim Janik
  6.  *
  7.  * This library is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU Lesser General Public
  9.  * License as published by the Free Software Foundation; either
  10.  * version 2 of the License, or (at your option) any later version.
  11.  *
  12.  * This library is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the GNU
  15.  * Lesser General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU Lesser General Public
  18.  * License along with this library; if not, write to the
  19.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20.  * Boston, MA 02111-1307, USA.
  21.  */
  22.  
  23. /*
  24.  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  25.  * file for a list of people on the GTK+ Team.  See the ChangeLog
  26.  * files for a list of changes.  These files are distributed with
  27.  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  28.  */
  29.  
  30. #ifndef __GTK_BINDINGS_H__
  31. #define __GTK_BINDINGS_H__
  32.  
  33.  
  34. #include <gdk/gdk.h>
  35. #include <gtk/gtkobject.h>
  36. #include <gtk/gtkenums.h>
  37.  
  38.  
  39. G_BEGIN_DECLS
  40.  
  41.  
  42. /* Binding sets
  43.  */
  44.  
  45. typedef struct _GtkBindingSet        GtkBindingSet;
  46. typedef struct _GtkBindingEntry        GtkBindingEntry;
  47. typedef struct _GtkBindingSignal    GtkBindingSignal;
  48. typedef struct _GtkBindingArg        GtkBindingArg;
  49.  
  50. struct _GtkBindingSet
  51. {
  52.   gchar            *set_name;
  53.   gint             priority;
  54.   GSList        *widget_path_pspecs;
  55.   GSList        *widget_class_pspecs;
  56.   GSList        *class_branch_pspecs;
  57.   GtkBindingEntry    *entries;
  58.   GtkBindingEntry    *current;
  59.   guint                  parsed : 1; /* From RC content */
  60. };
  61.  
  62. struct _GtkBindingEntry
  63. {
  64.   /* key portion
  65.    */
  66.   guint             keyval;
  67.   GdkModifierType     modifiers;
  68.   
  69.   GtkBindingSet        *binding_set;
  70.   guint            destroyed : 1;
  71.   guint            in_emission : 1;
  72.   GtkBindingEntry    *set_next;
  73.   GtkBindingEntry    *hash_next;
  74.   GtkBindingSignal    *signals;
  75. };
  76.  
  77. struct _GtkBindingSignal
  78. {
  79.   GtkBindingSignal    *next;
  80.   gchar            *signal_name;
  81.   guint             n_args;
  82.   GtkBindingArg        *args;
  83. };
  84.  
  85. struct _GtkBindingArg
  86. {
  87.   GType         arg_type;
  88.   union {
  89.     glong     long_data;
  90.     gdouble     double_data;
  91.     gchar    *string_data;
  92.   } d;
  93. };
  94.  
  95.  
  96. /* Application-level methods */
  97.  
  98. GtkBindingSet*    gtk_binding_set_new    (const gchar    *set_name);
  99. GtkBindingSet*    gtk_binding_set_by_class(gpointer     object_class);
  100. GtkBindingSet*    gtk_binding_set_find    (const gchar    *set_name);
  101. gboolean gtk_bindings_activate        (GtkObject    *object,
  102.                      guint         keyval,
  103.                      GdkModifierType modifiers);
  104. gboolean gtk_bindings_activate_event    (GtkObject      *object,
  105.                      GdkEventKey    *event);
  106. gboolean gtk_binding_set_activate    (GtkBindingSet    *binding_set,
  107.                      guint         keyval,
  108.                      GdkModifierType modifiers,
  109.                      GtkObject    *object);
  110. #define     gtk_binding_entry_add        gtk_binding_entry_clear
  111. void     gtk_binding_entry_clear    (GtkBindingSet    *binding_set,
  112.                      guint         keyval,
  113.                      GdkModifierType modifiers);
  114. void     gtk_binding_entry_add_signal    (GtkBindingSet    *binding_set,
  115.                      guint         keyval,
  116.                      GdkModifierType modifiers,
  117.                      const gchar    *signal_name,
  118.                      guint         n_args,
  119.                      ...);
  120. void     gtk_binding_set_add_path    (GtkBindingSet    *binding_set,
  121.                      GtkPathType     path_type,
  122.                      const gchar    *path_pattern,
  123.                      GtkPathPriorityType priority);
  124.  
  125.  
  126. /* Non-public methods */
  127.  
  128. void     gtk_binding_entry_remove    (GtkBindingSet    *binding_set,
  129.                      guint         keyval,
  130.                      GdkModifierType modifiers);
  131. void     gtk_binding_entry_add_signall    (GtkBindingSet    *binding_set,
  132.                      guint         keyval,
  133.                      GdkModifierType modifiers,
  134.                      const gchar    *signal_name,
  135.                      GSList        *binding_args);
  136. guint     gtk_binding_parse_binding    (GScanner    *scanner);
  137.  
  138.  
  139. void     _gtk_binding_reset_parsed    (void);
  140.  
  141. /* Creates a signal with a fixed callback instead of a class offset;
  142.  * useful for key binding signals
  143.  */
  144. guint _gtk_binding_signal_new (const gchar       *signal_name,
  145.                    GType          itype,
  146.                    GSignalFlags      signal_flags,
  147.                    GCallback          handler,
  148.                    GSignalAccumulator accumulator,
  149.                    gpointer          accu_data,
  150.                    GSignalCMarshaller c_marshaller,
  151.                    GType          return_type,
  152.                    guint          n_params,
  153.                    ...);
  154.  
  155. G_END_DECLS
  156.  
  157.  
  158. #endif /* __GTK_BINDINGS_H__ */
  159.